/**
 * 常用工具方法
 */
export default {
    // 获取url的querystring参数
  getQueryString: function (name) {
    let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
    let r = window.location.hash.substr(1).match(reg)
    if (r != null) return unescape(r[2]); return null
  },
   // 字符串hash
  hash: function (str) {
    let hash = 0
    if (str.length === 0) return hash
    for (let i = 0; i < str.length; i++) {
      let char = str.charCodeAt(i)
      hash = ((hash << 5) - hash) + char
      hash = hash & hash // Convert to 32bit integer
    }
    return hash
  },
  dateFormat: function (time, format) {
    if (time === undefined) return ''
    let t = new Date(time)
    let tf = function (i) { return (i < 10 ? '0' : '') + i }
    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
      switch (a) {
        case 'yyyy':
          return tf(t.getFullYear())
        case 'MM':
          return tf(t.getMonth() + 1) // 该值是 0（一月） ~ 11（十二月） 之间中的一个整数。所以要加1
        case 'mm':
          return tf(t.getMinutes())
        case 'dd':
          return tf(t.getDate())
        case 'HH':
          return tf(t.getHours())
        case 'ss':
          return tf(t.getSeconds())
      };
    })
  },
  dateFormatTime: function (time, format) {
    if (time === undefined) return ''
    let t = new Date(time)
    let t2 = new Date(time + '+08:00')
    if (t.getHours() !== t2.getHours()) {
      t = t2 // 非东八区的强制使用东八区，仅用于解决浏览器差异，不处理客户端时区差异
    }

    let tf = function (i) { return (i < 10 ? '0' : '') + i }
    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
      switch (a) {
        case 'yyyy':
          return tf(t.getFullYear())
        case 'MM':
          return tf(t.getMonth() + 1) // 该值是 0（一月） ~ 11（十二月） 之间中的一个整数。所以要加1
        case 'mm':
          return tf(t.getMinutes())
        case 'dd':
          return tf(t.getDate())
        case 'HH':
          return tf(t.getHours())
        case 'ss':
          return tf(t.getSeconds())
      };
    })
  }
}
